package store;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;

import javax.swing.Box.Filler;

public class Classifica {
	ArrayList<Posizione> c;
	/**
	 * @return the c
	 */
	public ArrayList<Posizione> getitem() {
		return c;
	}

	public Classifica(){
		c = new ArrayList<Posizione>(10);
		for ( int i = 0; i<10; i++ )
			c.add(i,new Posizione());
		leggi();
	}
	
	public Classifica addinClassifica(Posizione p, Classifica cSer) {
		// TODO Auto-generated method stub
		if(cSer == null)
			cSer = new Classifica();
		c = cSer.c;
		
		for ( int i = 0; i<10; i++ ){
			if ( p.getPunti() >= c.get(i).getPunti() ){
				p.setPos(i+1);
				c.add(i, p);
				i++;
				while( i<10 ){
					c.get(i).setPos(i+1);
					i++;
				}
				cSer.c = c;
				return cSer;
			}
			System.out.println("C: "+c);
			cSer.c = c;
		}
		return cSer;
	}
	
	public void scrivi(){
		System.out.println("CHIAMATA A SCRIVI");
		try{
			FileWriter file = new FileWriter("classifica.rgl");
			BufferedWriter buff = new BufferedWriter(file);
			for (int i=0; i<c.size(); i++){
				buff.write(c.get(i).getNome());
				buff.write(" ");
				buff.write(""+c.get(i).getPunti());
				buff.newLine();
			}
			buff.flush();
			file.close();
		}catch (Exception e) {
			System.err.println("ERR nella scrittura della classsifica File non trovato"+e);
		}
	}
	
	
	public void leggi(){
		System.out.println("CHIAMATA A LEGGI");
		ArrayList<String> lista = new ArrayList<String>(0);
		try {
			FileReader file = new FileReader("classifica.rgl");
			BufferedReader buff = new BufferedReader(file);
			String str;
			while ( (str=buff.readLine())!=null ){
					lista.add(str);
			}
			file.close();
		} catch (Exception e){
			System.err.println("ERR nella lettura della classsifica File non trovato"+e);
		}
		
		for(int i=0; i<10;i++){
			StringTokenizer st = new StringTokenizer(lista.get(i));
			c.get(i).setNome(st.nextToken());
			c.get(i).setPunti(Integer.parseInt(st.nextToken()));
		}
	}
	
	public String toString(){
		return ( "Classifica: \n"+c );
	}
}